package cn.wolfcode.crm.util;
//权限工具，抽取生成权限表达式的方法

import org.springframework.util.StringUtils;

import java.beans.Expression;
import java.lang.reflect.Method;

public abstract class PermissionUtil {

    /**
     * 根据method来生成权限表达式
     *
     * @param method java.lang.reflect.Method中的方法（只有它才能解决获得表达式两处的差异）
     * @return
     */
    public static String handlerExpression(Method method) {
        //通过反射类中的方法得到字节码对象在得到简单类名
        String simpleName = method.getDeclaringClass().getSimpleName();
        simpleName = simpleName.replace("Controller", "");//替换去尾
        simpleName = StringUtils.uncapitalize(simpleName);//转小写
        String methodName = method.getName();//拿到方法名
        String expression = simpleName + ":" + methodName;//拼权限表达式
        return expression;
    }
}
